Python Pandas如何获取列匹配特定值的行 |
您所在的位置:网站首页 › python dataframe 取值 › Python Pandas如何获取列匹配特定值的行 |
Python Pandas如何获取列匹配特定值的行
发布时间:2021-05-22 10:03:49
来源:亿速云
阅读:352
作者:小新
栏目:开发技术
这篇文章给大家分享的是有关Python Pandas如何获取列匹配特定值的行的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 给定一个带有列"BoolCol"的DataFrame,如何找到满足条件"BoolCol" == True的DataFrame的索引 目前有迭代的方式来做到这一点: for i in range(100,3000): if df.iloc[i]['BoolCol']== True: print i,df.iloc[i]['BoolCol']这虽然可行,但不是标准的 Pandas 方式。经过一番研究,我目前正在使用这个代码: df[df['BoolCol'] == True].index.tolist() 这个给了我一个索引列表,但跟我想要的不匹配,当检查: df.iloc[i]['BoolCol'] 其结果实际上是False! 如何使用正确的 Pandas 方式做到这一点? 最佳解决方法 df.iloc[i]返回df的第i行。 i不引用索引标签,i是从0开始的索引。 相反,属性index返回实际的索引标签,而不是数字row-indices: df.index[df['BoolCol'] == True].tolist() 或者等同地, df.index[df['BoolCol']].tolist() 通过使用带有"unusual"索引的DataFrame,可以非常清楚地看到差异: df = pd.DataFrame({'BoolCol': [True, False, False, True, True]}, index=[10,20,30,40,50]) In [53]: df Out[53]: BoolCol 10 True 20 False 30 False 40 True 50 True [5 rows x 1 columns] In [54]: df.index[df['BoolCol']].tolist() Out[54]: [10, 40, 50]如果你想使用索引, In [56]: idx = df.index[df['BoolCol']] In [57]: idx Out[57]: Int64Index([10, 40, 50], dtype='int64')那么您可以使用loc而不是iloc选择行: In [58]: df.loc[idx] Out[58]: BoolCol 10 True 40 True 50 True [3 rows x 1 columns]请注意,loc也可以接受布尔数组: In [55]: df.loc[df['BoolCol']] Out[55]: BoolCol 10 True 40 True 50 True [3 rows x 1 columns]如果您有一个布尔数组mask,并且需要序数索引值,则可以使用np.flatnonzero来计算它们: In [110]: np.flatnonzero(df['BoolCol']) Out[112]: array([0, 3, 4])使用df.iloc按顺序索引选择行: In [113]: df.iloc[np.flatnonzero(df['BoolCol'])] Out[113]: BoolCol 10 True 40 True 50 True python pandas1、简单易用,与C/C++、Java、C# 等传统语言相比,Python对代码格式的要求没有那么严格;2、Python属于开源的,所有人都可以看到源代码,并且可以被移植在许多平台上使用;3、Python面向对象,能够支持面向过程编程,也支持面向对象编程;4、Python是一种解释性语言,Python写的程序不需要编译成二进制代码,可以直接从源代码运行程序;5、Python功能强大,拥有的模块众多,基本能够实现所有的常见功能。 感谢各位的阅读!关于“Python Pandas如何获取列匹配特定值的行”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧! 推荐内容:python使用pandas和xlsxwriter读写xlsx文件 免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:[email protected]进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。 python pandas 上一篇新闻:python如何获取等间隔的数组 下一篇新闻:mysql如何获取某个时间段每一天、每一个小时的统计数据 猜你喜欢 PHP中ProtoBuf的使用方法 keras实现tensorflow与theano相互转换的方法 如何用Android实现加载效果 PHP中堆排序的原理和应用 Android制作水平圆点加载进度条 Keras怎么实现Theano和TensorFlow切换 Python中select和selectors的用法 Unity制作俄罗斯方块游戏 怎么将tensorflow 2.0的模型转成 tf1.x 版本的pb模型 Vue使用mapState时报错的解决方法 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |